═ATERIAL ON "╙UPER ├" FROM A LETTER TO ┬ILL ╥OBINSON, ┬ANDON, ╧╥. ╔ DON'T HAVE A RECORD OF THE DATE OF THE LETTER,BUT IT WAS PROBABLY ABOUT 2 YEARS AGO AT LEAST. ╔ HAVE NOT GONE MUCH FURTHER THAN THIS WITH "├", AND HAVE FORGOTTEN MOST OF THIS. ╙O PLEASE DON'T ASK ME FOR ADVICE OR HELP WITH ├.
╔ OWN A COPY OF YOUR "╙UPER ├" PACKAGE. ╔ HAVE BEEN WORKING ON IT OVER THE LAST SEVERAL WEEKS. ╙O FAR, ╔ HAVE FOUND THE FOLLOWING ERRORS, OR VERY CONFUSING SECTIONS IN THE MANUAL:
╨AGES 8 AND 9, AND PART OF PAGE 10, DISCUSS "DEVICE". ╔T IS ONLY HALF WAY DOWN PAGE 10, AND AFTER CONSIDERABLE FRUSTRATION, THAT YOU LEARN THAT "DEVICE" WILL NOT WORK IF YOU HAVE MORE THAN ONE DISK DRIVE!
┴T THE BOTTOM OF PAGE 13 "STDIO.P"IS REFERRED TO. ╘HIS IS AN ERROR, IT IS "STD.P". ┴LSO, YOU STATE THAT "STD.P" CONTAINS THE LIST OF FILES ON PAGE 12. ╔T DOESN'T CONTAIN "CTYPE.H", OR "LIBCS.L".
╧N PAGE 20 THERE IS A REFERENCE TO A FILE "EXP-TEXT.C". ╘HE CORRECT NAME IS "TEXT.C".
┴T THE BOTTOM OF PAGE 28, YOU ARE TOLD THE SAMPLE PROGRAM HAS A LINE "#INCLUDE "STDIO.H". ╘HE ACTUAL LINE IS "#INCLUDE "STDIO.C". ╘HEREFORE, YOU NEED TO MAKE TWO CHANGES IN THAT LINE, NOT ONE TO GET THE PROPER FORM "#INCLUDE "H:STDIO.H"".
╧N PAGE 31, IT IS STATED THAT THE COMPILER PRINTS THE SOURCE FILES IT IS PROCESSING IN GREY TYPE. ╘HESE ARE ACTUALLY IN CYAN.
╬EAR THE MIDDLE OF PAGE 33, YOU HAVE THE FOLLOWING. "╔F BOTH LINK FILES. O.O AND LIBC.L ARE NOW ON THE WORK DISKETTE OR THE ╥AM DISK, LOAD THE LOADER---". ╧BVIOUSLY, "LINKER" IS MEANT HERE.
╘HESE ARE THE MORE OBVIOUS ERRORS IN THE FIRST 47 PAGES, WHICH IS AS FAR AS ╔ HAVE GONE AT PRESENT. ┘OU MAY THINK THESE ARE ALL MINOR ERRORS, BUT WHEN A PERSON IS WORKING HARD TO UNDERSTAND AN ENTIRELY NEW CONCEPT, SUCH ERRORS CAN CONFUSE AND FRUSTRATE.
╘HE FORMAT OF THE MANUAL, SUCH THAT DIRECTIONS FOR VERSION 2 AND FOR VERSION 3 ARE INTERLACED IS VERY CONFUSING. ┘OU COULD HAVE USED DIFFERENT TYPE, OR SOME OTHER METHOD OF INDICATING WHICH VERSION IS BEING DEALT WITH AT ANY ONE TIME. ┬ETTER YET WOULD HAVE BEEN TWO MANUALS, EACH OF THEM COULD HAVE BEEN MUCH SHORTER. ╔ HAVE GONE THROUGH AND HIGHLIGHTED VERSION 3 MATERIAL FOR MYSELF. ╔T TAKES VERY CAREFUL READING TO BE SURE WHICH DIRECTIONS ARE FOR VERSION 2, WHICH FOR VERSION 3, AND WHICH COVER BOTH VERSIONS. ╘HE INDEX IS VERY SCANTY, WHICH MAKES IT IMPOSSIBLE TO LOOK MOST TOPICS UP EXCEPT BY LEAFING THROUGH THE BOOK.
╘HE PROGRAM ON PAGE 39 WORKS. ┬UT, THE FIRST LINE OF TEXT AFTER YOU RUN THE PROGRAM OVERLAYS THE COMMAND TO LOAD THE PROGRAM, SO IF THE PROGRAM HAS BEEN NAMED "OBJECTS", YOU GET SOMETHING LIKE THIS: "H:OBE=2.7182818". ╘HIS IS MESSY! ┴ "BACKSLASH N" BEFORE THE FIRST PRINTF LINE WOULD HAVE PREVENTED THIS. ═OST OF THE PROGRAMS ARE EQUALLY MESSY, THEY NEED CARRIAGE RETURNS INSERTED AND OTHER CHANGES TO MAKE THEM RUN NICELY.
┴T THE BOTTOM OF PAGE 40, FORMAT INSTRUCTIONS ARE EXPLAINED, BUT THE READER MUST SEARCH THE BOOK TO FIND THAT ALL FORMAT INSTRUCTIONS ARE LISTED ON PAGE 181. ╔F FORMAT COMMANDS CAN'T BE LISTED HERE, CERTAINLY THE READER CAN BE TOLD WHERE THEY ARE LISTED.
┼ARLY IN THE MANUAL, THE READER IS REQUIRED TO TYPE IN PROGRAMS. ┬UT NOWHEREáARE THERE ANY DIRECTIONS AS TO HOW TO TYPE IN THE BACKSLASH, CURLY BRACKETS, AND OTHER SPECIAL ├ CHARACTERS. ╔ FINALLY FOUND THESE IN THE APPENDIX ON PAGE 256. ╘HEY ARE NOT LISTED, BUT BURIED IN A RATHER CONFUSING DIAGRAM OF THE KEYBOARD. ┴ND, THE DIAGRAM IS WRONG, IN THAT THE TWO SETS OF GRAPHICS OBTAINED WITH THE SHIFT OR ├OMMODORE LOGO KEY AND THE KEY, ARE NOT CORRECTLY DIAGRAMMED. ╠OOK AT THE ├OMMODORE KEYBOARD AND COMPARE WITH THAT DIAGRAM.
╧N PAGE 42 THERE IS A PROGRAM THAT JUST DOES NOT WORK. ┘OU GET A BLANK SCREEN AND THE PROGRAM HANGS UP. ╠UCKILY FOR ME, ╔ HAVE A COPY OF ╦ERNINGHAM AND ╥ITCHIE, AND AM ALSO WORKING THROUGH THEIR BEGINNER PROGRAMS, FROM WHICH THE PROGRAMS IN YOUR MANUAL SEEM TO HAVE BEEN BORROWED. ╔N THE PROGRAMáON PAGE 42, IT IS NECESSARY TO PUT BRACKETS () AROUND "CELSIUS +32.0". ╘HEN THE PROGRAM WILL WORK!
╧N THE BOTTOM OF PAGE 46 THERE IS AN EXPLANATION OF WHY IT IS NECESSARY TO USE (C-'0') IN THE LINE SHOWN. ╔ PUZZLED OVER IT FOR A LONG TIME, AND IT DIDN'T SEEM TO MAKE MUCH SENSE. ┴GAIN, GOOD OLD ╦.AND ╥. TO THE RESCUE. ╘HEY HAVE AN EXCELLENT EXPLANATION OF THIS.
┴LONG ABOUT NOW, ╔ DECIDED TO JUST EXPLORE THE BOOK. ╔ SAW A REFERENCE TO THE GRAPHICS DEMO PROGRAM (CDEMO) ON PAGE 203. ╙INCE ╔ AM USING VERSION 3, ╔ WAS INSTRUCTED TO FOLLOW THE DIRECTIONS, AND COMPILE THE CODE WHICH IS ON THE SYSTEM DISK. ╚OW DO YOU DO IT? ╫ELL, YOU FIRST ERASE YOUR ╥AM DISK. ╘HEN, YOU LOAD THE DEMO CODE, AND PROCEED TO COMPILE AND LINK IT. ╘HIS GIVES YOU AN ERROR MESSAGE IN THE COMPILER. ╞INALLY ╔ TOOK A LOOK AT THE DEMO CODE WITH THE EDITOR. ╔T INCLUDES TWO FILES FROM THE ╥┴═ DISK!. ╘HESE, OF COURSE, AREN'T ON THE ╥AM DISK BECAUSE THE CONTENTS OF THE ╥AM DISK HAVE BEEN ERASED.
╞IRST ╔ TRIED ERASING EVERYTHING FROM THE ╥┴═ DISK EXCEPT THE TWO FILES THAT ARE NEEDED BY THE DEMO. ╚OWEVER, THERE ISN'T ENOUGH ROOM ON THE ╥┴═ DISK TO SAVE THE PROGRAM IF THESE ARE ON THE ╥┴═ DISK. ╙O, ╔ CHANGED THE PROGRAM TO GET THE FILES FROM DISK A INSTEAD OF H, AND SAVED THE NEW VERSION TO DISK B. ╘HEN ╔ WENT THROUGH THE PROCEDURE AGAIN, USING THE NEW VERSION AS MY SOURCE. ┼VERYTHING WENT FINE, IT COMPILED, IT LINKED, THERE WAS ROOM ENOUGH FOR THE FINAL PROGRAM ON THE ╥┴═ DISK. ╘HERE WAS ONLY ONE LITTLE PROBLEM. ╘HE DAMNED PROGRAM DOESN'T WORK!
(╬OTE TO ┬ILL. ╘HE REASON IT DIDN'T WORK, WHICH ╔ DISCOVERED FOR MYSELF, IS: ├OMMODORE ├ GRAPHICS ARE 40 COLUMNS. ╔ WAS TRYING TO RUN IT IN 80 COLUMNS. ╔T DOES WORK IN 40 COLUMNS. ╚OWEVER, NOT EASILY. ╘HE PROCEDURE, ARRIVED AT BY TRIAL, ERROR AND MANY CURSES, IS AS FOLLOWS: ╙ET YOUR COMPUTER FOR 40 COLUMNS. ╠OAD "CDEMO" WHICH IS ON WORK DISK 1 AND ON WORK DISK 2. ╬OTHING HAPPENS! ─O NOT TOUCH ANY KEYS, LET IT SIT FOR AT LEAST 2 OR 3 MINUTES. ╔ PRESUME IT IS DOING SOMETHING IMPORTANT DURING THIS PERIOD AND ╔ DON'T KNOW HOW LONG IT TAKES. ╘HEN HIT THE UP ARROW. ╘HEN HIT RETURN. ╘HE PROGRAM WILL RUN. ╔T WILL RUN FOREVER,AND THE ONLY WAY TO TURN IT OFF IS TO HIT THE RESET BUTTON. ┬Y THE WAY, IT APPEARS THAT IF YOU START HITTING KEYS, ESPECIALLY THE UP ARROW/RETURN COMBINATION TOO SOON, YOU LOAD ONLY PART OF THE PROGRAM. ╔T WILL RUN FOR A WHILE, BUT WON'T RUN TO COMPLETION. ═YSTERIOUS!)
╥ETURNING YOU TO MY LETTER TO ┴BACUS:
╚AVING INVESTED $37.95 IN THIS, AND A LOT OF WORK, ╔ AM NOT ABOUT TO THROW IT OUT, BUT BOY, AM ╔ TEMPTED! ╔ CAN ONLY ASSUME THAT THE REST OF THE BOOK IS JUST AS FULL OF ERRORS AND AMBIGUITIES AS THE SECTION ╔ HAVE ALREADY COVERED. ╘HIS IS A NO WAY TO LEARN A LANGUAGE.
╧NE LAST QUESTION. ╔N VERSION 2, IT IS APPARENTLY POSSIBLE TO MAKE A COMPILED FORM OF A PROGRAM THAT WILL RUN DIRECTLY FROM ┬ASIC. ╘HIS IS APPARENTLY IMPOSSIBLE WITH VERSION 3. ─OES THIS MEAN THAT A ├ PROGRAM COMPILEDáWITH VERSION 2 IN THE PROPER FORM CAN BE LOADED DIRECTLY FROM ┬ASIC BY SOMEONE WHO DOES NOT HAVE THE ├ SYSTEM DISK? ╫OULD THIS MEAN THAT YOU COULD SHOW A FRIEND WHO DOESN'T HAVE ├ A PROGRAM YOU HAVE WRITTEN IN ├? ╧R JUST THAT THE PART OF THE ├ SYSTEM NEEDED TO RUN A PROGRAM IS LOADED, THEN THE PROGRAM ITSELF IS LOADED, AND THE PROGRAM RUNS. ╔F A COMPILED ├ PROGRAM IS ACTUALLY IN MACHINE LANGUAGE, ISN'T IT POSSIBLE TO LOAD IT SOMEHOW FROM ┬ASIC? ╔N EITHER VERSION 2 OR VERSION 3?
(╬OTE- ┴PPARENTLY, THE ANSWER IS THAT ├ VERSION 2 CAN BE COMPILED TO RUN FROM ┬ASIC. ╓ERSION 3 CANNOT. ╘HEY SENT A SHEET WITH DIRECTIONS FOR MAKING A DISK THAT WILL BOOT FROM THE 128. ╔T LOADS THE CENTRAL PROCESSING PROGRAM, SO YOU END UP WITH A DISK THAT A PERSON WITH A 128 CAN USE TO RUN ├ PROGRAMS. (├ TEST DISK). ╘HEY DON'T MAKE IT CLEAR WHETHER THIS WOULD BE COPYRIGHT INFRINGEMENT OR NOT. ╔ ASSUME NOT, SINCE YOU DON'T HAVE THE EDITOR, COMPILER, OR LINKER JUST THE PROCESSOR. ┴ VERSION OF THE MATERIAL IS ON PAGES 115 AND 116, (SYSGEN) AND YOU MAY BE ABLE TO GET THE INFORMATION FROM THAT. ╔ THINK WHAT THEY SENT ME IS CLEARER, LET ME KNOW IF YOU DON'T HAVE LUCK WITH 115-116 AND ╔ CAN GET IT PHOTOCOPIED.)
(├ONTINUING LETTER)
╔ AM RATHER SHOCKED TO FIND A PRODUCT PUT OUT BY ┴BACUS THAT HAS SO MANY SERIOUS AND FRUSTRATING ERRORS. ╔ WILL KEEP GOING AT THIS, BUT ╔ RESENT THE TIME ╔ HAVE TO SPEND DISCOVERING ERRORS AND COMPENSATIONG FOR THEM. ╘HIS PACKAGE HAS BEEN ON THE MARKET FOR SEVERAL YEARS. ╔N THAT TIME, DID YOU EVER FEEL THE RESPONSIBILITY TO EITHER PUT OUT AN "ERRATA" SHEET, OR BETTERáYET, TO REPRINT THE WHOLE THING?
┘OUR SINCERELY,
╘O ┬ILL: ╘HEIR REPLY WAS VERY APOLOGETIC. ╘HEY ENCLOSED A DISK OF UTILITIES. ╔ AM SENDING YOU A COPY, SINCE YOU TOO WILL HAVE TO STRUGGLE WITH THE MANUAL. ╘HEIR EXPLANATION WAS THAT THE MANUAL WAS WRITTEN IN ╟ERMAN AND TRANSLATED INTO ┼NGLISH. (╘HE PERSON WHO DID THE TRANSLATING, ╔ ASSUME, KNEW ╟ERMAN, AND ┼NGLISH, BUT VERY LITTLE ABOUT ├.) ┴PPARENTLY, ONLY RECENTLY HAVE THEY OBTAINED PERMISSION TO CREATE A NEW VERSION OF THE MANUAL, AND THEY ARE WORKING ON IT. ╔ ALSO ENCLOSE A COPY OF THE "TEST DISK" REFERRED TO ABOVE, A COPY OF MY WORK DISK 1 AND A COPY OF MY WORK DISK 2. ╔ CAN'T MAKE MOST OF THE PROGRAMS ON THE UTILITY DISK WORK, BUT ADMIT ╔ HAVEN'T SPENT MUCH TIME AT IT.
╘HE PROGRAMS ON THE WORK DISK ARE MOSTLY IN TWO FORMS, SOURCE CODE, AND A PROGRAM THAT CAN BE RUN FROM ├. ╞OR EXAMPLE, "COUNTWORD.S" WOULD BE SOURCE CODE. ╠OAD IT INTO THE EDITOR, AND SEE WHAT IT LOOKS LIKE. "├OUNTWORD" WOULD BE THE RESULT OF COMPILING AND LINKING "COUNTWORD.S", AND CAN BE RUN DIRECTLY.
╘HIS IS AN OUTLINE OF HOW TO DO THINGS. ╔ FIND IT USEFUL BECAUSE ╔ WORKED IT UP. ╚OPE IT IS OF SOME USE TO YOU. ╔ HAVE A SHORTENED VERSION OF THIS ON A SHEET OF PAPER AND KEEP IT AVAILABLE AT ALL TIMES, TO HELP ME REMEMBER HOW TO DO THINGS.
├╧══┴╬─╙:
├OPY. ═UST BE LOADED FROM SYSTEM DISK.
COPY H:NAME TO A:*
MEANS, COPY PROGRAM "NAME" FROM ╥AM DRIVE TO 'A' DRIVE, USING THE SAME NAME.
COPY H:NAME TO A:NAME2
MEANS COPY PROGRAM "NAME" FROM ╥AM DRIVE TO 'A' DRIVE USING DIFFERENT NAME.
╔F ANY OTHER COMMAND IS GIVEN, "COPY" IS NO LONGER AVAILABLE AND MUST BE LOADED AGAIN. ╫HEN COPY IS AVAILABLE, THE "A:" PROMPT WILL BE RED.
╥ENAME. ╔S ON ╥AM DISK AT LOADUP.
COM R:NEWNAME=OLDNAME
MEANS RENAME PROGRAM "OLDNAME" AS "NEWNAME".
╙CRATCH. ╔S ON ╥AM DISK AT LOADUP.
COM S:NAME
MEANS SCRATCH PROGRAM "NAME".
╞ORMAT. ╔S ON ╥AM DISK AT LOADUP.
COM N:NAME, ID
┼─╔╘╧╥.
╘O WRITE A NEW PROGRAM:
╠OAD EDITOR FROM SYSTEM DISK WITH "CE"
╞5, AND THEN TYPE "NEW". ┼NTER 80 FOR LINE LENGTH.
┼NTER FILE NAME AS H:NAME.H
┼NTER AN EXTRA LINE WITH ╞7, AND COLOR IT YELLOW OR OTHER READABLE COLOR. ╘HEN ENTER MORE LINES BY HITTING ╞7 UNTIL YOU HAVE THE NUMBER YOU NEED. ╘YPE IN CODE, PROOFREAD IT CAREFULLY! ╨ROOFREAD IT AGAIN!
╞5 AND THEN ╙ TO SAVE. ╔T WILL BE SAVED TO ╥AM DISK.
╠OAD. ╘O LOAD A SOURCE CODE FILE INTO THE EDITOR.
╠OAD EDITOR WITH "CE".
╞5 AND THEN ╠. (LOAD).
┼NTER DRIVE DESIGNATION AND FILE NAME AND HIT RETURN.
╞OR EXAMPLE: B:PROGRAM.C (RETURN)
╙HORTER WAY TO LOAD A FILE INTO THE EDITOR: ASSUMING PROGRAM TO BE LOADED IS IN "B" DRIVE. ╘YPE:
A:CE B:PROGRAM.C (RETURN)
╙AVE. ╘O SAVE A COPY OF AN EDITED SOURCE FILE TO DISK.
╞5 AND THEN ╞ FOR FILE NAME CHANGE.
╨UT WORK DISK IN DRIVE A OR DRIVE B. ├HANGE NAME TO "A:NAME.S" OR "B:NAME.S" AND THEN "╙" TO SAVE TO WORK DISK IN DRIVE A OR B.(╔ PREFER ".S" FOR SOURCE, THEY SEEM TO PREFER ".C" [CODE?] )
╟ET OUT OF EDITOR WITH ╞5, ╪.
├╧═╨╔╠┼╥.
┬E SURE EDITED PROGRAM AND ANY LINK FILES NEEDED ARE ON ╥AM DISK!
╠OAD COMPILER FROM SYSTEM DISK WITH "CC".
┼NTER "H:NAME.H" (╥ETURN)
┼NTER "H:NAME.O" FOR LINK FILE (DEFAULT)(RETURN)
┼NTER "H:NAME.E" FOR ERROR FILE (DEFAULT)(RETURN)
╚IT RETURN. ╔F THERE IS ANY TROUBLE, GO BACK TO EDITOR, LOAD SOURCE FILE, MAKE NECESSARYáCRRECTIONS AND START OVER. ╙AVE TO SAME NAME.(┴UTOMATIC REPLACE).
╬OTE. ╘HEY CONFUSE THE ISSUE BY SUGGESTING THAT YOU USE "O.O" FOR THE LINK (OBJECT) FILE RATHER THAN "NAME.O". ╘HIS WORKS, BUT ╔ PREFERRED TO USE THE DEFAULT FORM THAT INCLUDES THE NAME AT FIRST. ╠ATER WHEN YOU HAVE A FEEL FOR WHAT YOU ARE DOING, USING "O.O" WILL SAVE SOME TYPING AND DISK SPACE.
╬OTE. ╘HE MATERIAL ON PAGE 140 AND FOLLOWING EXPLAINS THE USE OF THE COMPILER AND IS ACTUALLY EASIER TO FOLLOW THAN THE MATERIAL IN THE EARLY CHAPTERS. ╬OTICE YOU CAN DO THIS:
A:CC H:PROGRAM.H H:PROGRAM.O H:ERROR.E (╥ETURN).
╘HE COMPILER WILL BE LOADED AND THE CODE WILL BE COMPILED. ┴ BIT MORE EFFICIENT, ╔ SUGGEST YOU DO IT THE ORIGINAL WAY AT FIRST, UNTIL YOU SEE WHAT IS WHAT.
╠╔╬╦┼╥.
╠OAD LINKER FROM SYSTEM DISK WITH "CL"
┼NTER NAME "H:NAME" (╥ETURN)
┼NTER "LIBR.L" (DEFAULT) (╥ETURN)
┼NTER OTHER LIBRARY FILE NAME IF NEEDED. (╥ETURN)
(╫HEN ALL LIBRARY FILES NEEDED ARE LISTED:
┼NTER "H:NAME.O" (╥ETURN)
╬OTE. ╙EE PAGE 150 AND FOLLOWING FOR A FAIRLY GOOD DESCRIPTION OF HOW TO USE LINKER. ┘OU CAN LINK WITH ONE LINE OF CODE, TOO, LIKE SO.
╘HE COMPILER IS LOADED, THE PROGRAM COMPILED, THE LINKER IS LOADED, AND THE PROGRAM LINKED. "H:PROGRAM.O" IS UNDERSTOOD HERE, SO IT ISN'T NECESSARY TO TYPE IT IN. ┘OU ARE GOING THROUGH ALL THE STEPS TO COMPILE AND LINK, BUT FASTER AND WITH LESS TYPING.
╙┴╓╔╬╟. ┴FTER LINKING AND COMPILING, RUN THE PROGRAM FROM THE ╥AM DRIVE. ╔F IT THE WAY YOU WANT IT, SAVE IT TO WORK DISK. ╘O DO THIS, LOAD "COPY" FROM SYSTEM DISK. ╙AVE WITH COPY H:NAME TO B:*, OR COPY H:NAME TO B:NAME2.